iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Modern Web

asp.net core 分層架構快速上手系列 第 29

Day28 訂單管理(建立資料)

  • 分享至 

  • xImage
  •  
  • 設計
    • 結算頁面
    • 完成訂單
    • 修改訂單
  • 訂單標題、訂單詳細資料
  • 設定訂單狀態:
    • 待處理
    • 處理中
    • 處理完成
    • 訂單結案

  • 結算畫面
    購物車=>總計=>跳轉結算畫面

  • 訂購人資訊

    • 姓名
    • 手機
    • 地址
  • 產品資訊

    • 顏色
    • 尺寸
    • 數量
    • 金額總計
  • CartController

    • 新增Summary Action,return Summary
    • 新增Summary View
  • 訂單資料表

  • 訂單主表

    • 發貨地點
    • 付款狀態
    • 訂單日期
    • 付款ID
  • 訂單詳細資訊

    • 產品資訊
  • OrderHeader

 public class OrderHeader
 {
     public int Id { get; set; }
     public string ApplicationUserId { get; set; }
     [ForeignKey("ApplicationUserId")]
     [ValidateNever]
     public ApplicationUser ApplicationUser { get; set; }
     [Required]
     public DateTime OrderDate { get; set; }
     public double OrderTotal { get; set; }
     public string? OrderStatus { get; set; }
     public string? PaymentStatus { get; set; }
     public DateTime PaymentDate { get; set; }
     public DateTime PaymentDueDate { get; set; }
     public string? SessionId { get; set; }
     [Required]
     public string PhoneNumber { get; set; }
     [Required]
     public string Address { get; set; }
     [Required]
     public string Name { get; set; }
 }
  • OrderDetail
public class OrderDetail
{
    public int Id { get; set; }
    [Required]
    public int OrderHeaderId { get; set; }
    [ForeignKey("OrderHeaderId")]
    [ValidateNever]
    public OrderHeader OrderHeader { get; set; }
    [Required]
    public int ProductId { get; set; }
    [ForeignKey("ProductId")]
    [ValidateNever]
    public Product Product { get; set; }
    public int Count { get; set; }
    public double Price { get; set; }
    public string Color { get; set; }
    public string Size { get; set; }
}
  • DbContext
    • Add-migration addOrderHeaderAndDetailToDb
    • Update-database
public DbSet<OrderHeader> OrderHeaders { get; set; }
public DbSet<OrderDetail> OrderDetails { get; set; }
  • 建立Repository與修改UnitOfWork
    • 新增OrderHeader與OrderDetail的Repository與IRepository
  • UnitOfWork
public IOrderHeaderRepository OrderHeader { get; private set; }
public IOrderDetailRepository OrderDetail { get; private set; }
OrderHeader = new OrderHeaderRepository(_db);
OrderDetail = new OrderDetailRepository(_db);
  • IUnitOfWork
IOrderHeaderRepository OrderHeader { get; }
IOrderDetailRepository OrderDetail { get; }

上一篇
Day27 建立購物車(View)
下一篇
Day29 合併購物車金額與訂單
系列文
asp.net core 分層架構快速上手31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言